package com.cx.mall.common.util;

import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class JWTUtils {
    public static final String SECRET_KEY = "mall-cx";
    public static final Long EXPIRE = 1000 * 60 * 30L; //30min

    public static String generateToken(Map<String, Object> claims) {
        //token由3部分组成    头部 载荷 签名
        HashMap<String, Object> header = new HashMap<>();
        header.put("alg", "HS512"); //签名算法
        header.put("typ", "JWT"); //token类型

        return Jwts.builder()
               .setHeader(header)
               .setClaims(claims) //载荷
               .signWith(SignatureAlgorithm.HS512, SECRET_KEY)
                .setExpiration(new Date(System.currentTimeMillis() + EXPIRE)) //过期时间
                .setIssuedAt(new Date()) //签发时间
               .compact();
    }
}
